package com.mes.cloud.dao;

import com.mes.cloud.api.dto.request.productpricegroup.ProductPriceGroupProductListRequest;
import com.mes.cloud.entity.ProductPriceGroupProduct;
import com.mes.cloud.entity.vo.productpricegroup.ProductPriceGroupProductProductVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.ids.SelectByIdsMapper;

import java.util.Date;
import java.util.List;

/**
 * 产品价格组-产品关联
 *
 * @author wxm
 * @email xiaomin.wu1@pactera.com
 * @version 2019-09-24 16:08:41
 */
public interface ProductPriceGroupProductDao  extends SelectByIdsMapper<ProductPriceGroupProduct>, Mapper<ProductPriceGroupProduct>{

    /**
     * 批量删除
     * @param ids
     * @param updateDateStr
     * @param
     * @return
     */
    int batchDelete(@Param("list") List<String> ids,
                    @Param("updateDateStr") String updateDateStr,
                    @Param("employeeNo") String employeeNo,
                    @Param("employeeName") String employeeName);

    /**
     * 查看产品就价格组下的产品
     * @param selectParam
     * @return
     */
    List<ProductPriceGroupProductProductVo> list(ProductPriceGroupProductListRequest selectParam);

    /**
     * @Author ysd
     * @Description 产品定价查询
     * @Date 15:11 2019/10/17
     **/
    List<ProductPriceGroupProductProductVo> findPriceGroupByProductId(@Param("productId") String productId);

    /**
     * 查看开始结束时间是否跟已有区间有冲突
     * @param startDate
     * @param endDate
     * @param productId
     * @param productPriceGroupId
     * @return
     */
    int selectConflictCount(@Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("productId") String productId, @Param("productPriceGroupId") String productPriceGroupId);

    /**
     * @Author ysd
     * @Description 批量更新
     * @Date 18:45 2019/10/27
     **/
    int batchInsert(List<ProductPriceGroupProduct> productCustomerGroupCustomerList);


    /**
     * @Author ysd
     * @Description 查询详情
     * @Date 20:05 2019/10/27
     **/
    ProductPriceGroupProduct findDetailsByPriceGroupId(@Param("productPriceGroupId") String productPriceGroupId, @Param("knumh") String knumh);

}
